﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MJM.RPP.EntidadesNegocio;
using MJM.SPP.EntidadesNegocio;
using MJM.Principal;
using MJM.SCA.EntidadesNegocio;

namespace wRegPadron.frmOpciones
{
    public partial class ucIcono : System.Web.UI.UserControl
    {
        protected int GetNivel(String path)
        {
            if (path.Contains("/"))
            {
                string[] lst = path.Split('/');
                return lst.Count();
            }
            return 1;
        }

        public void ImprimirArbolCompleto()
        {
            TreeView tv = new TreeView();
            // if (modo == 1)
            tv = tvMenu;/*
            else
                tv = tvDestino;*/

            tv.Nodes.Clear();
            List<ModuloEN> lstModulos = new List<ModuloEN>();
            List<SubOpcionEN> lstSubOpcion = new List<SubOpcionEN>();
            List<ControlEN> lstControl = new List<ControlEN>();
            List<ProgramaEN> lstPrograma = new List<ProgramaEN>();
            lstPrograma = MediadorCN.GetPrograma().Listar();

            TreeNode nodo, ni;
            for (int i = 0; i < lstPrograma.Count; i++)
            {
                nodo = new TreeNode();
                nodo.Text = lstPrograma[i].PROMUN_chNOMPRO;
                nodo.Value = lstPrograma[i].PROMUN_inID.ToString();
                tv.Nodes.Add(nodo);
                lstModulos = MediadorCN.GetModulo().Listar(Convert.ToInt32(tv.Nodes[i].Value));
                int n;
                for (int j = 0; j < lstModulos.Count; j++)
                {
                    nodo = new TreeNode();
                    nodo.Text = lstModulos[j].OPTGEN_chNOMMEN;
                    nodo.Value = Convert.ToString(lstModulos[j].OPTGEN_P_inID);
                    tv.Nodes[i].ChildNodes.Add(nodo);
                    lstSubOpcion = MediadorCN.GetSubOpcion().Listar(lstModulos[j].OPTGEN_P_inID);
                    n = lstSubOpcion.Count;
                    for (int z = 0; z < n; z++)
                    {
                        ni = new TreeNode();
                        ni.Value = lstSubOpcion[z].SUBOPT_P_inID.ToString();
                        ni.Text = lstSubOpcion[z].SUBOPT_chNOMSOP;
                        tv.Nodes[i].ChildNodes[j].ChildNodes.Add(ni);
                    }
                }
            }
            for (int i = 0; i < tv.Nodes[0].ChildNodes.Count; i++)
            {
                tv.Nodes[0].ChildNodes[i].Collapse();
            }

            tv.DataBind();
            tv.CollapseAll();
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                SubOpcionEN objSubOpcionEN = MediadorCN.GetSubOpcion().ObtenerTexto("MenuIcono");
                lblTitulo.Text = objSubOpcionEN.SUBOPT_chNOMSOP;
                lblDescripcion.Text = objSubOpcionEN.SUBOPT_chDESSOP;
                ImprimirArbolCompleto();
                hfIdItem.Value = "0";
            }
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            int nivel = GetNivel(tvMenu.SelectedNode.ValuePath);
            int valor = Convert.ToInt32(hfIdItem.Value);
            IconoAPPEN objIconoAPPEN =new IconoAPPEN();
            objIconoAPPEN.ICOAPP_biARCICO = fuIcono.FileBytes;
            objIconoAPPEN.ICOAPP_chNOMICO = fuIcono.FileName;
            objIconoAPPEN.ICOAPP_inIDELE = valor;
            int i = 0;
            if (nivel == 1)
            {
                objIconoAPPEN.ICOAPP_inTIPELE = 0;
                i = MediadorCN.GetIconoAPPCN().Insertar(objIconoAPPEN);
            }
            if (nivel == 2)
            {
                objIconoAPPEN.ICOAPP_inTIPELE = 1;
                i = MediadorCN.GetIconoAPPCN().Insertar(objIconoAPPEN);
            }
            if (nivel == 3)
            {
                objIconoAPPEN.ICOAPP_inTIPELE = 2;
                i = MediadorCN.GetIconoAPPCN().Insertar(objIconoAPPEN);
            }

            if (i > 0)
            {
                lblError.Text="Se guardó el icono satisfactoriamente";
                ImprimirArbolCompleto();
                lblSeleccion.Text = "";
                hfIdItem.Value = "0";
            }
        }

        protected void tvMenu_SelectedNodeChanged(object sender, EventArgs e)
        {
            hfIdItem.Value = tvMenu.SelectedNode.Value.ToString();
            lblSeleccion.Text = "Usted ha seleccionado " + tvMenu.SelectedNode.Text;
        }
    }
}